package com.ptrsystem.siatd.dao.implementacion;

import com.ptrsystem.siatd.beans.GenDocSalidaExt;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

@Repository
public class MantenimientoGenDocSalidaExtImplement implements com.ptrsystem.siatd.dao.interfaces.MantenimientoGenDocSalidaExtInterface {

    @Autowired
    private DataSource dataSource;

    @Override
    @Transactional
    public boolean getRegistraGenDocSalidaExt(GenDocSalidaExt genDocSal) {
        boolean rt = false;
        JdbcTemplate jdbc = new JdbcTemplate(this.dataSource);
        int rs = jdbc.update("insert into TD_GEN_DOC_SALIDA_EXT values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
                genDocSal.getCodTipDoc(),
                genDocSal.getNroEmiDocAdmin(),
                genDocSal.getNroDocExt(),
                genDocSal.getNomTipDoc(),
                genDocSal.getAsunto(),
                genDocSal.getFecha(),
                genDocSal.getUsuDestino(),
                genDocSal.getCodUniPadre(),
                genDocSal.getCodUniDep(),
                genDocSal.getRefDocumento(),
                genDocSal.getIniDatosUsu(),
                genDocSal.getCodTipAnio(),
                genDocSal.getCodAnio(),
                genDocSal.getCodEstDocSalida(),
                genDocSal.getDniUsuario(),
                genDocSal.getRutaDoc());
        if (rs > 0) {
            rt = !rt;
        }
        return rt;
    }

    @Override
    public int getGeneraNroDocSalExt(String codDoc) {
        String rs = "0";
        JdbcTemplate jdbc = new JdbcTemplate(this.dataSource);
        rs = jdbc.queryForObject("select convert(int,(MAX(ds.NRO_EMISION_DOC_ADM))) from TD_GEN_DOC_SALIDA_EXT ds join TD_DOCUMENTO d on d.COD_TIPO_DOC=ds.COD_TIPO_DOC where d.COD_TIPO_DOC=?", new Object[]{codDoc}, String.class);
        if (rs == null) {
            rs = "0";
        }
        int rt = Integer.parseInt(rs);
        rt += 1;
        return rt;
    }

    @Override
    public int getGeneraCodGenDocSalidaExt() {
        String rs = "0";
        JdbcTemplate jdbc = new JdbcTemplate(this.dataSource);
        rs = jdbc.queryForObject("select convert(int,(MAX(NRO_EMISION_DOC_ADM ))) from TD_GEN_DOC_SALIDA_EXT", String.class);
        if (rs == null) {
            rs = "0";
        }
        int rt = Integer.parseInt(rs);
        rt += 1;
        return rt;
    }

    @Override
    public List<Map> getBusBandejaEntrada(String dniDest, String Asunto, String fecha, String uniPad, String uniDep, String UPA, String USA, String UP) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

}
